<template>  
  <view>  
    <up-card>  
      <template #body>  
        <view class="" slot="body">  
          <up-form :model="form" ref="uFormRef" :rules="rules">  
            <up-form-item label="用户" prop="username">  
              <up-input v-model="form.username" />  
            </up-form-item>  
            <up-form-item label="密码" prop="password">  
              <up-input password v-model="form.password" />  
            </up-form-item>  
          </up-form>  
        </view>  
      </template>  
    </up-card>  
      
    <view>  
      <up-button @click="submit">登录</up-button>  
      <up-button v-if="flag" @click="handleQuit">退出</up-button>  
    </view>  
  </view>  
</template>  
  
<script setup>  
import { reactive, ref, onMounted } from 'vue';  
import loginApi from '/api/login.js'; // 假设 loginApi 是导出的登录函数  
  
// 校验规则  
const rules = {  
  username: [{  
    required: true,  
    message: '请输入账号',  
    trigger: ['blur', 'change'],  
  }],  
  password: [{  
    required: true,  
    message: '请输入密码',  
    trigger: ['blur', 'change'],  
  }],  
};  
  
// 表单引用  
const form = reactive({  
  username: '', // 修改为 username  
  password: '', // 添加 password 字段  
  // studentId: '', // 如果不需要，可以删除  
  // avartar:'', // 如果不需要，可以删除  
});  
  
const uFormRef = ref(null);  
  
// 提交方法  
function submit() {  
  uFormRef.value.validate().then(valid => {  
    if (valid) {  
      loginApi().then(res => { // 假设 loginApi 返回一个 Promise  
        const token = res.data.token;  
        const userInfo = res.data; // 假设返回的数据中包含了所有需要的信息  
        uni.setStorageSync('Authorization', token);  
        uni.setStorageSync('userInfo', JSON.stringify(userInfo));  
        uni.switchTab({  
          url: 'pages/User/user',  
        });  
      }).catch(error => {  
        uni.$u.toast('登录失败: ' + error.message);  
      });  
    } else {  
      uni.$u.toast('校验失败');  
    }  
  }).catch(error => {  
    uni.$u.toast('校验过程中发生错误: ' + error.message);  
  });  
}  
  
const handleQuit = () => {  
  uni.removeStorageSync('Authorization');  
  uni.removeStorageSync('userInfo');  
  uni.switchTab({  
    url: '/pages/user/user',  
  });  
};  
  
const flag = ref(false);  
onMounted(() => {  
  const userInfo = uni.getStorageSync('userInfo');  
  if (userInfo) {  
    flag.value = true;  
    // 如果需要，可以从 userInfo 中解析出 user 对象并赋值给某个变量  
  }  
});  
</script>  
  
<style>  
/* 你的样式 */  
</style>